﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ehrlich
{
    internal class Program
    {
        static void Main(string[] args)
        {   //用“埃氏筛法”求2~100之内的素数
            //整体思路是通过双层遍历，把消去的数设置为"$"
            //初始化
            string[] init_array = new string[99];
            for(int i=0;i<=98;i++)
            {
                init_array[i] =(i+2).ToString();
            }

            //除数
            int div;

            //保存素数
            List<string> List = new List<string>();

            //双层遍历数组，第一层遍历用来找最小值，第二层遍历用来消除倍数
            for (int i = 0; i <= 98; i++)
            {
                if (init_array[i] != "$")
                {
                    div = int.Parse(init_array[i]);
                    List.Add(init_array[i]);
                    init_array[i] = "$";
                    for (int j = i + 1; j <= 98; j++)
                    {
                        if (init_array[j] != "$" && int.Parse(init_array[j]) % div == 0)
                        {
                            init_array[j] = "$";
                        }
                    }
                }
            }

            //遍历输出：
            Console.WriteLine("2~100之内的所有素数有：");
            foreach (string s in List)
            { Console.WriteLine(s); }

            //查看结果
            Console.ReadLine();
        }
    }
}
